package models;

import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.persistence.Transient;

@Entity
@Table(name = "curso")
@NamedQueries({
		@NamedQuery(name = Curso.QUERY_CURSOS_GRADO, query = "SELECT c FROM Curso c WHERE c.idCalendarioAcademico=:idCalendarioAcademico AND c.idGrado=:idGrado"),
		@NamedQuery(name = Curso.QUERY_CURSOS_PERIODO, query = "SELECT c FROM Curso c WHERE c.idCalendarioAcademico=:idCalendarioAcademico") })
public class Curso extends models.Entity<Long> {

	/**
	 * 
	 */

	public static final String QUERY_CURSOS_GRADO = "getCursosGrado";
	public static final String QUERY_CURSOS_PERIODO = "getCursosCalendario";
	private static final long serialVersionUID = 1L;

	@Id
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	private Long id;

	@Column(name = "id_calendario_academico", updatable = false)
	private Long idCalendarioAcademico;

	@Column(name = "id_grado", updatable = false)
	private Long idGrado;

	@Column(name = "nombre")
	private String nombre;

	@Transient
	private List<Estudiante> estudiantes;

	public Curso() {
	}

	@Override
	public Long getId() {
		return id;
	}

	@Override
	public void setId(Long id) {
		this.id = id;
	}

	public String getNombre() {
		return nombre;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	public Long getIdCalendarioAcademico() {
		return idCalendarioAcademico;
	}

	public void setIdCalendarioAcademico(Long idCalendarioAcademico) {
		this.idCalendarioAcademico = idCalendarioAcademico;
	}

	public Long getIdGrado() {
		return idGrado;
	}

	public void setIdGrado(Long idGrado) {
		this.idGrado = idGrado;
	}

	public List<Estudiante> getEstudiantes() {
		return estudiantes;
	}

	public void setEstudiantes(List<Estudiante> estudiantes) {
		this.estudiantes = estudiantes;
	}

}
